package cn.edu.neu.studentmsg_java.config;

import org.springframework.boot.SpringBootConfiguration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@SpringBootConfiguration
public class GulimallCorsConfiguration implements WebMvcConfigurer {
    /**
     * springboot提供了CorsWebFilter进行跨域
     *
     * @return
     */
//    @Bean
//    public CorsWebFilter corsWebFilter() {
//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        // 配置跨域
//        CorsConfiguration corsConfiguration = new CorsConfiguration();
//        // 允许哪个请求头
//        corsConfiguration.addAllowedHeader("*");
//        corsConfiguration.addAllowedOrigin("http://localhost:8080");
//        corsConfiguration.addAllowedMethod("POST");
//        // 允许哪个方法进行跨域
//        corsConfiguration.addAllowedMethod("*");
//        // 允许哪个请求来源进行跨域
//        // corsConfiguration.addAllowedOrigin("*");
//        corsConfiguration.addAllowedOriginPattern("*");
//        // 是否允许携带cookie进行跨域
//        corsConfiguration.setAllowCredentials(true);
//
//        source.registerCorsConfiguration("/**",corsConfiguration);
//        return new CorsWebFilter(source);
//    }
    @Override
    public void addCorsMappings(CorsRegistry corsRegistry){
        /**
         * 所有请求都允许跨域，使用这种配置就不需要
         * 在interceptor中配置header了
         */
        corsRegistry.addMapping("/**")
                .allowCredentials(true)
                .allowedOrigins("http://localhost:8080")/*放行web端的IP地址*/
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE", "OPTIONS")/*允许的请求方式*/
                .allowedHeaders("*")
                .maxAge(3600);
    }
}
